package References;

import org.junit.Test;

/**
 * @className:methodReference
 * @description: 方法引用 构造器引用 数组引用
 * @author: renhai
 * @create: 2021-09-07 15:58
 */
public class methodReference {
    /** 方法引用
     * 1 当要传递给lambda体的操作已经有实现的方法了，可以使用方法引用
     * 2 方法引用，本质上就是lambda表达式，而lambda表达式最为函数式接口的实例。所以方法引用也是函数式接口的实例
     * 3 使用费格式：类（或对象）:: 方法名
     * 4 具体三种情况
     *      对象:: 非静态方法 （情况1）
     *      类:: 静态方法（情况2）
     *      类:: 非静态方法'（情况3）
     * 5 使用要求:要求接口中的抽象方法的形参列表和返回值类型与方法引用的方法的形参列表和返回值类型相同（适用于情况1  2）
     */

    /**
     * 构造器引用
     * 和方法引用类似，函数式接口的抽象方法的形参列表和构造器的形参列表一致
     * 抽象方法的返回值类型即为构造器所属的类的类型
     */

    /**
     * 数组引用
     * 把数组看成一个特殊的类，写法同上
     */
    @Test
    public void test1()
    {

    }
}
